package algoritmos2011;


public class LifoMensajes {
	private NodoPilaMensajes inicio;


	
	public void setInicio(NodoPilaMensajes inicio) {
		this.inicio = inicio;
	}

	public boolean esVacia(){
		return inicio==null;
	}

	public void pop(){
		if (!esVacia()){
			NodoPilaMensajes aux= inicio;
			if (aux.getSig()!=null)
				inicio =aux.getSig();
			else
				inicio=null;
		}
	}

	public void push (String usrO,String asunto,String mensaje){
		if (esVacia()){
			NodoPilaMensajes nuevo=new NodoPilaMensajes(usrO,asunto,mensaje);
			inicio =nuevo;
		}else{
			NodoPilaMensajes aux=new NodoPilaMensajes(usrO,asunto,mensaje);
			aux.setSig(inicio);
			inicio=aux;
		}
	}
	
	public NodoPilaMensajes getInicio() {
		return inicio;
	}
	
	public String mostrarPila(){
	 NodoPilaMensajes aux=inicio;	
	 String retorno="";
	 int cont=0;
	 if (esVacia()){
		 retorno+= "No hay mensajes";
		 return retorno;
	 }
	 while (aux.getSig()!=null){
		   cont++;
		   retorno+= cont + "." + aux.getAsunto()+ ":" + aux.getMensaje();
		   aux=aux.getSig();
	 }
	 return retorno;
	 
		
	}
	
	public void vaciarLifoMensajes(){
		if (this.getInicio()!=null){
			this.setInicio(vaciarLifoMensajes(this.getInicio()));
		}
	}
	private NodoPilaMensajes vaciarLifoMensajes(NodoPilaMensajes nodo){
		
		if(nodo.getSig()!=null){
			vaciarLifoMensajes(nodo.getSig());
		}
		nodo=null;
		return nodo;
	}
	


}

